<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"            
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/pages/core/plantilla/plantillaPrincipal.xhtml">

        <ui:define name="contenido">          
            <h:form onsubmit="return checkSubmit();"  id="frmPrincipal">        
                <p:panel id="pgFormFilter" header="#{i18n['panel.titulo.cobranza']}" style="#{applicationMBean.estiloTitulo}">
                    <h:panelGrid columns="6" cellspacing="5">
                        <h:outputLabel for="itGestor" value="#{i18n['cobranza.gestor']}" styleClass="label"/>
                        <p:autoComplete id="itGestor" value="#{cobranzaMBean.dtoFiltro.gestorDto}" completeMethod="#{cobranzaMBean.autoCompletarUsuario}"
                                        label="#{i18n['cobranza.gestor']}" maxResults="10" minQueryLength="#{applicationMBean.minQueryLengthAutoComplete}" queryDelay="1" 
                                        converter="usuarioConvert" var="sn" itemLabel="#{sn.descripcion}" itemValue="#{sn}" size="50" forceSelection="true"
                                        disabled="#{sessionMBean.sessionUsuarioDto.rolDto.descripcion == 'GESTOR'}">
                            <p:column style="#{applicationMBean.estiloObligatorio}" > 
                                #{sn.descripcion}
                            </p:column> 
                        </p:autoComplete>

                        <h:outputLabel for="itNumDocumento" styleClass="label" value="#{i18n['cobranza.nro.documento']}"/>
                        <p:inputText id="itNumDocumento" label="#{i18n['cobranza.nro.documento']}"  onkeypress="return fn_validaTecla('entero',this)"
                                     value="#{cobranzaMBean.dtoFiltro.clienteDto.numeroDocumento}"
                                     size="30" maxlength="50" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="20" minimum="0"/>
                        </p:inputText>

                        <h:outputLabel for="itNomApp" value="#{i18n['cobranza.nombres.apellidos']}" styleClass="label"/>
                        <p:inputText id="itNomApp" label="#{i18n['cobranza.nombres.apellidos']}" maxlength="200"
                                     value="#{cobranzaMBean.dtoFiltro.nombresApellidos}"
                                     size="60" styleClass="txtCampoObligatorio">
                            <f:validateLength maximum="200" minimum="0"/>
                        </p:inputText>

                        <h:outputLabel for="itEmpresa" value="#{i18n['cobranza.empresa']}" styleClass="label"/>
                        <p:autoComplete id="itEmpresa" value="#{cobranzaMBean.dtoFiltro.empresaCobranzaDto}"  completeMethod="#{empresaCobranzaMBean.autoCompletarEmpresa}"
                                        label="#{i18n['cobranza.empresa']}" maxResults="10" minQueryLength="#{applicationMBean.minQueryLengthAutoComplete}" queryDelay="1" 
                                        converter="empresaCobranzaConvert" var="sn" itemLabel="#{sn.razonSocial}" itemValue="#{sn}" size="50" forceSelection="true">
                            <p:column style="#{applicationMBean.estiloObligatorio}" > 
                                #{sn.razonSocial}
                            </p:column> 
                        </p:autoComplete>

                        <h:outputLabel for="itProducto" value="#{i18n['cobranza.producto']}" styleClass="label"/>
                        <p:autoComplete id="itProducto" value="#{cobranzaMBean.dtoFiltro.productoEmpresaDto}" completeMethod="#{cobranzaMBean.autoCompletarProducto}"
                                        label="#{i18n['cobranza.producto']}" maxResults="10" minQueryLength="#{applicationMBean.minQueryLengthAutoComplete}" queryDelay="1" 
                                        converter="productoEmpresaConvert" var="sn" itemLabel="#{sn.descripcion}" itemValue="#{sn}" size="50" forceSelection="true">
                            <p:column style="#{applicationMBean.estiloObligatorio}" > 
                                #{sn.descripcion}
                            </p:column> 
                        </p:autoComplete>

                        <h:outputLabel for="itEstadoDeuda" styleClass="label" value="#{i18n['cobranza.estado.deuda']}"/>
                        <p:selectOneMenu id="itEstadoDeuda" value="#{cobranzaMBean.dtoFiltro.estadoDeudaDto}"  converter="parametroConvert"                             
                                         style="#{applicationMBean.estiloObligatorio}" >
                            <f:selectItems value="#{cobranzaMBean.listaEstadoDeuda}" var="parametroDto"  itemLabel="#{parametroDto.descripcion}" itemValue="#{parametroDto}" />                        
                        </p:selectOneMenu>

                    </h:panelGrid>
                    <f:facet name="footer">

                        <p:commandButton icon="ui-icon ui-icon-search" title="#{i18n['general.button.buscar.filtro.tip']}" accesskey="#{applicationMBean.keyBuscar}"
                                         value="#{i18n['general.button.buscar.filtro']}" ajax="false" 
                                         style="#{applicationMBean.estilosBtnBuscar}" 
                                         actionListener="#{cobranzaMBean.buscar}">
                            <f:ajax  render="pnlTabla pgFormFilter"/>
                        </p:commandButton>
                        <p:spacer width="20" />
                        <h:outputText  value="#{cobranzaMBean.lista.size()} #{i18n['form.general.mensaje.cantidad.encontrada']}" styleClass="mensaje" />
                    </f:facet>
                </p:panel>

                <p:panel id="pnlTabla" header="#{i18n['general.panel.titulo.busqueda.resultado']}"  style="#{applicationMBean.estiloTitulo}" rendered="#{cobranzaMBean.lista!=null &amp;&amp; cobranzaMBean.lista.size()>0}">
                    <div class="info_busqueda">
                        <h:panelGrid styleClass="tabla_dinam">
                            <p:dataTable id="tblPrincipal" value="#{cobranzaMBean.lista}" var="dto" paginatorPosition="top"                                     
                                         paginator="true" rows="#{sessionMBean.cantidadRegistros}" binding="#{cobranzaMBean.gestionCobranzaDatatable}">
                                <p:column style="text-align:center;">
                                    <h:panelGrid id="pgBotonesGrillaCobranza" columns="2" cellspacing="5" styleClass="estiloPanelGrid">
                                        <p:commandButton icon="ui-icon ui-icon-search" title="#{i18n['cobranza.ver.pagos']}"
                                                         action="#{cobranzaMBean.verPago}" ajax="true"
                                                         oncomplete="carDialogPago.show()" update=":frmPago"
                                                         disabled="#{dto.listaPagos == null || dto.listaPagos.size()==0 or dto.estadoDeudaDto.id == 828 or dto.estadoDeudaDto.id == 829}">
                                            <f:setPropertyActionListener value="#{dto}" target="#{cobranzaMBean.dtoPopup}"/>
                                        </p:commandButton>
                                        <p:commandButton icon="ui-icon ui-icon-pencil" title="#{i18n['cobranza.ver.gestion']}" 
                                                         ajax="true" update=":frmGestionCobranza"    
                                                         actionListener="#{cobranzaMBean.verGestion}" 
                                                         oncomplete="carDialogGestion.show()" disabled="#{dto.estadoDeudaDto.id == 828 or dto.estadoDeudaDto.id == 829}">
                                            <f:setPropertyActionListener value="#{dto}" target="#{cobranzaMBean.dtoPopup}" />                                                        
                                        </p:commandButton>
                                    </h:panelGrid>
                                </p:column>
                                <!-- Datos de la EmpresaCliente -->
                                <p:column headerText="#{i18n['general.label.id']}"  sortBy="#{dto.idDeudaCliente}">
                                    <h:outputText value="#{dto.id}" style="#{dto.listaAcciones.size() > 0 ? 'FONT-FAMILY: Arial;font-size: 10px; color: red;' : 'FONT-FAMILY: Arial;font-size: 10px; color: black;'}" />
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.estado.deuda']}" styleClass="general">
                                    <h:outputText value="#{dto.estadoDeudaDto.descripcion}" style="#{dto.listaAcciones.size() > 0 ? 'FONT-FAMILY: Arial;font-size: 10px; color: red;' : 'FONT-FAMILY: Arial;font-size: 10px; color: black;'}"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.deuda.cliente']}" styleClass="general" >
                                    <h:outputText value="#{dto.idDeudaCliente}" styleClass="general" />
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.empresa']}" styleClass="general">
                                    <h:outputText value="#{dto.empresaCobranzaDto.razonSocial}" styleClass="general" />
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.tipo.nro.documento']}" styleClass="general">
                                    <h:outputText value="#{dto.clienteDto.tipoNumeroDocumento}" styleClass="general" />
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.nombres.apellidos']}" styleClass="general">
                                    <h:outputText value="#{dto.clienteDto.nombresApellidos}" styleClass="general" />
                                </p:column>
                                <!-- Datos de la DeudaCliente -->

                                <p:column headerText="#{i18n['cobranza.codigo.producto']}" styleClass="general">
                                    <h:outputText  value="#{dto.productoEmpresaDto.codigo}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.descripcion.producto']}" styleClass="general">
                                    <h:outputText value="#{dto.productoEmpresaDto.descripcion}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.moneda']}" styleClass="general">
                                    <h:outputText value="#{dto.moneda}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.fecha.vencimiento']}" styleClass="general">
                                    <h:outputText value="#{dto.fechaVencimiento}" styleClass="general">
                                        <f:convertDateTime pattern="#{applicationMBean.formatoFechaHoraSegundos}"  timeZone="#{applicationMBean.timeZone}"/>
                                    </h:outputText>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.cuotas.vencidas']}" styleClass="general">
                                    <h:outputText value="#{dto.cuotasVencidas}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.total.cuotas']}" styleClass="general">
                                    <h:outputText value="#{dto.totalCuotas}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.monto.cuota']}" styleClass="general">
                                    <h:outputText value="#{dto.montoCuota}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.deuda.total']}" styleClass="general">
                                    <h:outputText value="#{dto.montoTotal}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.capital.deuda']}" styleClass="general">
                                    <h:outputText value="#{dto.capitalDeuda}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.intereses']}" styleClass="general">
                                    <h:outputText value="#{dto.intereses}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.descuento']}" styleClass="general">
                                    <h:outputText value="#{dto.descuento}" styleClass="general"/>
                                </p:column>
                                <p:column headerText="#{i18n['cobranza.pago.minimo']}" styleClass="general">
                                    <h:outputText value="#{dto.montoMinimo}" styleClass="general"/>
                                </p:column>                                                     
                            </p:dataTable>        
                        </h:panelGrid>
                    </div>
                </p:panel>
            </h:form>
            <p:dialog id="dialogPago" header="#{i18n['cobranza.pagos']} - #{cobranzaMBean.dtoPopup.clienteDto.nombresApellidos} - #{cobranzaMBean.dtoPopup.empresaCobranzaDto.razonSocial}" widgetVar="carDialogPago" resizable="false"  
                      width="600" height="600" modal="true">   
                <ui:include src="/pages/cobranza/gestionCobranza/pagos.xhtml" /> 
            </p:dialog>
            <p:dialog id="dialogGestion" widgetVar="carDialogGestion" resizable="false"  
                      width="1250" height="630" modal="true">   
                <ui:include src="/pages/cobranza/gestionCobranza/gestion.xhtml" /> 
            </p:dialog>
            <p:dialog id="dialogListaPagos" header="#{i18n['cobranza.pagos']} - #{cobranzaMBean.dtoPopup.clienteDto.nombresApellidos} - #{cobranzaMBean.dtoPopup.empresaCobranzaDto.razonSocial}" widgetVar="carDialogListaPagos" resizable="false"  
                      width="700" height="300" modal="true">   
                <ui:include src="/pages/cobranza/gestionCobranza/listaPagos.xhtml" /> 
            </p:dialog>
            <p:dialog id="dialogEditarAccion" header="#{i18n['cobranza.comunicacion']}" widgetVar="carDialogAccion" resizable="false"  
                      width="700" height="200" modal="true">   
                <p:messages id="msjDialogDeta" showDetail="false" autoUpdate="true"/>
                <ui:include src="/pages/cobranza/gestionCobranza/accion.xhtml" /> 
            </p:dialog>
        </ui:define>
    </ui:composition>
</html>
